package pzl.com.androidaccessibility.service;

import android.accessibilityservice.AccessibilityService;
import android.content.Intent;
import android.util.Log;
import android.view.KeyEvent;
import android.view.accessibility.AccessibilityEvent;

import pzl.com.androidaccessibility.utils.PerformClickUtils;

/**
 * @author zl.peng
 * @version [1.0, 2016-10-31]
 */
public class MyAccessibilityService extends AccessibilityService {
    public static final String TAG = "MyAccessibilityService";

    public static String btn_start_id = "pzl.com.bluetooth:id/btnSwich";

    @Override
    protected void onServiceConnected() {
        super.onServiceConnected();
        /**
         * 方法一：Java代码中配置
         */
       /* AccessibilityServiceInfo info = new AccessibilityServiceInfo();
        // 需要响应的事件类型
        // 此处为通知栏变化事件、界面变化事件
        info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED |
                AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
        // 如不指定包名，则此服务对所有应用有效
        // 此处指定微信包名
        info.packageNames = new String[]{"com.tencent.mm"};
        // 设置使用的反馈类型
        // 此处设为通用类型
        info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
        // 设置响应时间
        info.notificationTimeout = 100;
        // 应用参数
        this.setServiceInfo(info);*/

    }

    @Override
    public boolean onUnbind(Intent intent) {
        return super.onUnbind(intent);
    }

    /**
     * 必须重载的方法
     * 接收系统发来的AccessbilityEvent，已经按照配置文件过滤
     * 可使用getEventType()来确定事件的类型
     * 可使用getContentDescription()来提取产生事件的View的相关的文本标签。
     */
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        Log.e(TAG, "onAccessibilityEvent");
        final int eventType = event.getEventType();
        switch (eventType) {
            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
                Log.e(TAG, "TYPE_WINDOW_STATE_CHANGED");
                // PerformClickUtils.findAndPerformBtnClick(this,"OFF");
                // PerformClickUtils.findTextAndClick(this, "OFF");
                PerformClickUtils.findViewIdAndClick(this, btn_start_id);
                break;
        }

    }

    /**
     * 必须重载的方法
     * 系统想要中断AccessibilityService返给的响应时会调用
     * 生命周期中会调用多次
     */
    @Override
    public void onInterrupt() {
        //服务中断，如授权关闭或者将服务杀死
    }

    @Override
    protected boolean onKeyEvent(KeyEvent event) {
        return super.onKeyEvent(event);
    }


}
